#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
#include<time.h>
#include<string.h>
#include"Stack.h"
typedef int  HPDatatype;
typedef struct Heap {
	HPDatatype* arr;
	int size;       //实际使用空间大小
	int capacity;   //容量
}HP;


//直接插入排序
void InsertSort(int* arr,int n);
void SortPrint(int* arr,int n);
//希尔排序
void ShellSort(int*arr,int n); 


//冒泡排序
void BubbleSort(int* a, int n);
//快速排序
void QuickSort(int* a,int left,int right);
//非递归快速排序
void QuickSortNonR(int*arr,int left,int right);


//堆排序
void HeapSort(int* arr, int n);//从小到大调整
//选择排序
void SelectSort(int* arr,int n);


//归并排序
void MergeSort(int*arr,int n);
//非递归归并排序
void MergeSortNonR(int* arr,int left,int right);

//非比较排序
//计数排序
void CountSort(int* arr,int n);


void CreateNData();
int ReadNDataSortToFile(FILE* fout,int n,const char* file1);	
void MergeFile(const char* file1,const char* file2,const char*mfile);
